General Background
FIGS. 1 and 2 depict a top view of a disk 26 in a hard disk drive 20.
In the Figures, only one disk is shown; however, a disk drive typically includes multiple disks, which rotate together about a common spindle 24. Each disk 26 is coated with magnetic material for storing the digital information to be recorded. One read/write head 23 is provided for each disk surface. Each head 23 is mounted on a common actuator 22, which is moved in discrete increments to locate the head 23 on a particular disk track 27. Tracks lying nearer the spindle 24 are referred to "as "inner" tracks, while those with a larger radius located near the outer periphery of disk 26 are called "outer" tracks.
A group of disk tracks with a common radius is typically referred to as a cylinder. As an example, with a drive having one disk with two sides, each cylinder would consist of two tracks. On the other hand, a drive having six two-sided disks would include cylinders consisting of 12 tracks.
Each track is divided into sectors, with each sector storing multiple (usually 512) bytes of data. In addition, sectors may be further organized into clusters or blocks, which are groupings of a like-number of consecutive sectors (e.g., 4 sectors per cluster and 16 sectors per block). A sector is usually the smallest physically addressable storage unit of a disk drive. (The term "storage unit" is used herein to generically connote a unit of memory. A storage unit would include, for example, a sector, a cluster, or a block.) A particular sector is physically referenced by its cylinder, head and sector numbers (e.g., cylinder 0, head 0, sector 1).
The number of sectors per track is determined when the disk is formatted by a low-level formatting program. Traditionally, each track would include the same number of sectors, thereby making it simpler for a host computer via its operating system and BIOS to transfer data between itself and the disk drive. However, with such homogeneity, the byte density per unit of length decreases as track lengths increase, going from the inner (higher number) cylinders to the outer (lower number) cylinders. Thus, it is an inefficient use of cylinder space to assign each track the same number of sectors. Therefore, disk drives are now formatted so that the number of sectors per track increases as the cylinder radius increases.
To do this, a disk is usually divided into zones, with each zone having a like number of sectors per track and with the number of sectors per track changing from zone to zone and not necessarily from track to track. (Although, a zone could be defined to include only one cylinder.) This is known as zone bit recording ("ZBR"). ZBR enables systems to increase the available memory storage capacity of disk drives.
With ZBR, however, more complex disk drive accessing methods are required, because disk drive geometries (including the number of sectors per particular track) can vary from drive to drive. For this reason, computer systems utilize logical addressing, whose operability does not depend upon a particular disk drive geometry.
Disk drive space may be formatted into several distinct sections known as partitions. For example, a computer with multiple operating systems and one disk drive must allocate to each operating system a separate, dedicated "partition" of the disk drive. Typically, each partition consists of some definable group of contiguous cylinders. Due to ZBR, the number of sectors for a particular track can vary both within a single partition and between partitions. Logical addressing becomes a virtual necessity to deal with these variations. With logical addressing, a host computer (on a system level) can transfer data into and out of a logical address that corresponds to a physical storage unit for a given disk drive partition, without having to know the storage unit's actual physical address. The logical address is translated into its corresponding physical address via a logical to physical translation. The logical to physical translation is customarily performed either by the computer on a sub-system level (i.e., through the BIOS), by a dedicated disk drive controller, or (as is the case with an SCSI disk drive in connection with a DOS system) by both the computer and the disk drive controller.
With a standard logical to physical translation, the logical addresses, beginning with the lowest address, are sequentially mapped, in ascending order, onto the physical sectors of a partition, beginning with the partition's lowest physical sector (i.e., lowest cylinder, head, sector combination). For example, with a disk drive having a single partition, logical storage unit address 1 would correspond to physical address: cylinder 0, head 0, sector 1. (While some specific logical storage unit types, e.g., logical sectors, may begin with logical address 0, the generic storage units of this specification have been deemed to begin with storage unit 1. Thus, logical storage unit address 1 is the lowest logical "storage unit" address.) The order of the physical sectors from lowest to highest, progresses first through the sectors of cylinder 0, head 0, then through the sectors of cylinder 0, head 1 and so on until reaching the last sector in the last head of cylinder 0. Next would come cylinder 1, head 0, sector 1. This progression continues inward through each cylinder with the last sector of the last head of the innermost cylinder being the highest physical cylinder. It can be seen that with a standard, sequential logical to physical translation (or mapping), low logical number addresses correspond to outer physical sectors and high logical addresses correspond to high number (inner) physical sectors, as is shown in FIG. 6A. The sequential order of the logical addresses is mirrored in the corresponding sequence of physical addresses.
With operating systems such as DOS or Windows 95, when data is first transferred from a host computer to a disk drive, it is typically loaded into the lowest available logical storage unit address. Because low-level data (i.e., partition information, boot sector, FATs, directories, and operating system) is the first data to be stored on a disk drive partition (during configuration), it is stored in the low-number logical address storage units, which correspond to the outer cylinders of the partition.
The partition information is stored in the partition sector, which is the first sector of the partition. Next comes the boot sector, the FATs and the directories. After the directories comes the operating system, which constitutes most of the low-level data. After the low-level data has been loaded, the partition can start accumulating user data in response to the needs of a user. User data, which includes all data other than low-level data, is typically stored beginning at the logical storage unit immediately following the last logical storage unit utilized for storing the low-level data. Thus, the logical (and, likewise, physical) sequence and location of particular user data depends upon its relative order of storage onto the partition.